/*
 * Lenguajes Visuales
 * Abril/2009
 *  
 * Ejercicio 5 - Ejemplo RMI / Serializable
 *  
 */

package servidor;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.*;

import calc.*;

public class ServCalculo extends UnicastRemoteObject implements Calculador {

		public ServCalculo() throws RemoteException { 
			super(); } 
		 
		public int sumar(Articulo x, Articulo y) { 
			return x.getStock() + y.getStock(); 
		} 
		
		public static void main(String[] args) { 
			if (System.getSecurityManager() == null) { 
				System.setSecurityManager(new RMISecurityManager()); 
			} 
			String name = "//localhost/Calculadora"; 
			
			try { 
				ServCalculo serv = new ServCalculo(); 
				Naming.rebind(name, serv); 
				mostrarBindings(name);
				} 
			catch (Exception e) { 
				e.printStackTrace(); 
			} 
		}
		 /********************************************************************************
		    * Muestra los vínculos (bindings) de un registro cuyo nombre es 'nombre_registro' 
		    *******************************************************************************/
		   public static void mostrarBindings( String nombre_registro ) {
		      try {
		    	  String[] bindings = Naming.list( nombre_registro );
		    	  System.out.println( "Vínculos disponibles:");
		    	  for ( int i = 0; i < bindings.length; i++ )
		    		  System.out.println( bindings[i] );
		      }
		      catch (Exception e) {
		    	  e.printStackTrace();
		      }

		   }
	}

